package com.clever.mall.service;

import com.clever.mall.commons.dto.TwoUserRequestParam;
import com.clever.mall.commons.dto.UserRequestParam;
import com.clever.mall.commons.dto.UserUpdateRequestParam;
import com.clever.mall.commons.result.*;
import com.clever.mall.vo.UserVo;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * @author ChenWang
 * @interfaceName UserInfoService
 * @date 2020/11/09 15:24
 * @since JDK 1.8
 */
public interface UserInfoService {
    UserVo getUserVo(UserRequestParam userRequestParam);

    List<UserVo> getFansList(UserRequestParam userRequestParam) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;

    List<UserVo> getAttentionList(UserRequestParam userRequestParam) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;

    UserMyPage getUserMyPage(UserRequestParam userRequestParam);

    UserHomePage getUserHomePage(UserRequestParam userRequestParam,int page,int size);

    MessagePage getMessagePage(UserRequestParam userRequestParam);

    OtherUserHomePage getOtherUserHomePage(TwoUserRequestParam twoUserRequestParam, int page, int size);

    int changeAttention(TwoUserRequestParam twoUserRequestParam);

    int updateUserInfo(UserUpdateRequestParam userUpdateRequestParam) throws IOException;

    /*WalletPage getMyWalletPage(UserRequestParam userRequestParam);*/
}
